From 272942eeb36bdcab83478b5c4a572764240be959 Mon Sep 17 00:00:00 2001 From: "cl349@firebug.cl.cam.ac.uk" Date: Wed, 27 Jul 2005 18:31:18 +0000 Subject: [PATCH] Introduce dom0 to the store. Signed-off-by: Christian Limpach --- tools/python/xen/xend/XendDomain.py | 9 +++++---- tools/python/xen/xend/XendDomainInfo.py | 15 ++++++++++++++- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/tools/python/xen/xend/XendDomain.py b/tools/python/xen/xend/XendDomain.py index ed3f503292..157d2216cf 100644 --- a/tools/python/xen/xend/XendDomain.py +++ b/tools/python/xen/xend/XendDomain.py @@ -55,10 +55,6 @@ class XendDomain: eserver.subscribe('xend.virq', self.onVirq) self.initial_refresh() - dom0 = self.domain_lookup(0) - if not dom0: - dom0 = self.domain_unknown(0) - def list(self): """Get list of domain objects. @@ -117,6 +113,11 @@ class XendDomain: self._delete_domain(domid) self.refresh(cleanup=True) + dom0 = self.domain_lookup(0) + if not dom0: + dom0 = self.domain_unknown(0) + dom0.dom0_init_store() + def close(self): pass diff --git a/tools/python/xen/xend/XendDomainInfo.py b/tools/python/xen/xend/XendDomainInfo.py index b193cdde66..5859905b3d 100644 --- a/tools/python/xen/xend/XendDomainInfo.py +++ b/tools/python/xen/xend/XendDomainInfo.py @@ -164,13 +164,13 @@ class XendDomainInfo: """ dom = info['dom'] vm = cls(db) + vm.setdom(dom) db.readDB() vm.importFromDB() config = vm.config log.debug('info=' + str(info)) log.debug('config=' + prettyprintstring(config)) - vm.setdom(dom) vm.memory = info['mem_kb']/1024 if config: @@ -283,6 +283,7 @@ class XendDomainInfo: def importFromDB(self): self.db.importFromDB(self, fields=self.__exports__) + self.store_channel = self.eventChannel("store_channel") def setdom(self, dom): """Set the domain id. @@ -983,6 +984,18 @@ class XendDomainInfo: return 0 return timeout - (time.time() - self.shutdown_pending['start']) + def dom0_init_store(self): + if not self.store_channel: + self.store_channel = self.eventChannel("store_channel") + self.store_mfn = xc.init_store(self.store_channel.port2) + if self.store_mfn >= 0: + try: + self.db.introduceDomain(self.id, self.store_mfn, + self.store_channel) + except: + pass + self.exportToDB(save=True, sync=True) + def vm_field_ignore(vm, config, val, index): """Dummy config field handler used for fields with built-in handling. -- 2.30.2